/* ==========================================================
   Browser Notification Tester
   JorgeRosa.dev
========================================================== */

:root{

    --bg:#f5f7fb;
    --card:#ffffff;

    --text:#1d2939;
    --text-light:#667085;

    --border:#d0d5dd;

    --primary:#2563eb;
    --primary-hover:#1d4ed8;

    --success:#16a34a;
    --warning:#d97706;
    --danger:#dc2626;

    --shadow:0 12px 30px rgba(0,0,0,.08);

    --radius:14px;

}

@media (prefers-color-scheme: dark){

    :root{

        --bg:#0f172a;
        --card:#1e293b;

        --text:#f8fafc;
        --text-light:#cbd5e1;

        --border:#334155;

        --shadow:0 10px 25px rgba(0,0,0,.45);

    }

}

/* ==========================================================
   Base
========================================================== */

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{

    scroll-behavior:smooth;

}

body{

    font-family:
    Inter,
    Segoe UI,
    Roboto,
    Arial,
    sans-serif;

    background:var(--bg);

    color:var(--text);

    line-height:1.5;

    padding:40px 20px;

}

/* ==========================================================
   Container
========================================================== */

.container{

    max-width:1100px;

    margin:auto;

}

/* ==========================================================
   Header
========================================================== */

header{

    margin-bottom:40px;

}

header h1{

    font-size:2.4rem;

    margin-bottom:10px;

}

header p{

    color:var(--text-light);

    max-width:700px;

}

/* ==========================================================
   Cards
========================================================== */

.card{

    background:var(--card);

    border:1px solid var(--border);

    border-radius:var(--radius);

    padding:30px;

    margin-bottom:30px;

    box-shadow:var(--shadow);

}

.card h2{

    margin-bottom:25px;

    font-size:1.4rem;

}

/* ==========================================================
   Status Grid
========================================================== */

.status-grid{

    display:grid;

    grid-template-columns:repeat(auto-fit,minmax(250px,1fr));

    gap:18px;

}

.status-item{

    border:1px solid var(--border);

    border-radius:10px;

    padding:18px;

    display:flex;

    justify-content:space-between;

    align-items:center;

}

.status-item span{

    color:var(--text-light);

}

.status-item strong{

    font-size:.95rem;

}

/* ==========================================================
   Status colors
========================================================== */

.ok{

    color:var(--success);

}

.warning{

    color:var(--warning);

}

.error{

    color:var(--danger);

}

/* ==========================================================
   Form
========================================================== */

label{

    display:block;

    margin-bottom:22px;

    font-weight:600;

}

input,
textarea{

    width:100%;

    margin-top:8px;

    border:1px solid var(--border);

    background:transparent;

    color:var(--text);

    border-radius:8px;

    padding:12px;

    font-size:15px;

    transition:.2s;

}

textarea{

    resize:vertical;

    min-height:110px;

}

input:focus,
textarea:focus{

    outline:none;

    border-color:var(--primary);

    box-shadow:0 0 0 4px rgba(37,99,235,.15);

}

/* ==========================================================
   Buttons
========================================================== */

button{

    cursor:pointer;

    border:none;

    background:var(--primary);

    color:#fff;

    padding:12px 22px;

    border-radius:8px;

    font-size:15px;

    font-weight:600;

    transition:.2s;

}

button:hover{

    background:var(--primary-hover);

    transform:translateY(-2px);

}

button:active{

    transform:translateY(0);

}

/* ==========================================================
   Log
========================================================== */

.log{

    background:#111827;

    color:#e5e7eb;

    border-radius:10px;

    padding:18px;

    min-height:220px;

    max-height:350px;

    overflow-y:auto;

    font-family:

        Consolas,
        Monaco,
        monospace;

    font-size:14px;

}

.log-entry{

    margin-bottom:10px;

    border-bottom:1px solid rgba(255,255,255,.06);

    padding-bottom:8px;

    word-break:break-word;

}

.log-time{

    color:#60a5fa;

    margin-right:10px;

}

.log-success{

    color:#4ade80;

}

.log-warning{

    color:#facc15;

}

.log-error{

    color:#f87171;

}

/* ==========================================================
   Header Log
========================================================== */

.log-header{

    display:flex;

    justify-content:space-between;

    align-items:center;

    margin-bottom:20px;

}

/* ==========================================================
   Badges
========================================================== */

.badge{

    display:inline-flex;

    align-items:center;

    gap:6px;

    border-radius:30px;

    padding:4px 12px;

    font-size:13px;

    font-weight:600;

}

.badge.success{

    background:rgba(22,163,74,.15);

    color:var(--success);

}

.badge.warning{

    background:rgba(217,119,6,.15);

    color:var(--warning);

}

.badge.error{

    background:rgba(220,38,38,.15);

    color:var(--danger);

}

/* ==========================================================
   Responsive
========================================================== */

@media(max-width:768px){

    body{

        padding:20px;

    }

    header h1{

        font-size:2rem;

    }

    .card{

        padding:22px;

    }

    .status-grid{

        grid-template-columns:1fr;

    }

}