:root{
    --bg:#f4f7fb;
    --bg-soft:#eaf1ff;
    --card:#ffffff;
    --card-2:#f8fbff;
    --text:#152033;
    --muted:#667085;
    --primary:#5b8cff;
    --primary-dark:#3e6fe8;
    --border:#dce5f5;
    --success:#22c55e;
    --warning:#f59e0b;
    --danger:#ef4444;
    --shadow:0 18px 45px rgba(33,65,124,.10);
    --radius:20px;
    --container:1180px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
    margin:0;
    font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
    background:
            linear-gradient(180deg, #f8fbff 0%, #eef4ff 46%, #f7f9fc 100%);
    color:var(--text);
}
a{text-decoration:none;color:inherit}
button,input,select{font:inherit}
.container{width:min(calc(100% - 32px), var(--container)); margin:0 auto}

.navbar{
    position:sticky;
    top:0;
    z-index:50;
    backdrop-filter: blur(14px);
    background:rgba(248,251,255,.82);
    border-bottom:1px solid var(--border);
}
.nav-inner{
    min-height:76px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
}
.logo{
    display:flex;
    align-items:center;
    gap:12px;
    font-weight:800;
    letter-spacing:-.02em;
}
.logo-mark{
    width:42px;height:42px;border-radius:14px;
    display:grid;place-items:center;
    background:linear-gradient(135deg,var(--primary),#7dd3fc);
    color:white;font-weight:800;
    box-shadow:0 12px 28px rgba(91,140,255,.24);
}
.nav-links{
    display:flex;
    align-items:center;
    gap:12px;
    flex-wrap:wrap;
}
.nav-link{
    color:var(--muted);
    font-weight:600;
}
.nav-link:hover{color:var(--text)}

.btn{
    border:0;
    cursor:pointer;
    border-radius:14px;
    padding:12px 18px;
    font-weight:700;
    transition:.2s ease;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
}
.btn-primary{
    background:var(--primary);
    color:#fff;
    box-shadow:0 12px 24px rgba(91,140,255,.25);
}
.btn-primary:hover{background:var(--primary-dark); transform:translateY(-1px)}
.btn-secondary{
    background:rgba(255,255,255,.66);
    color:var(--text);
    border:1px solid var(--border);
}
.btn-secondary:hover{background:#fff}
.btn-danger{
    background:rgba(239,68,68,.10);
    color:#b42318;
    border:1px solid rgba(239,68,68,.22);
}

.hero{
    padding:82px 0 54px;
}
.hero-grid{
    display:grid;
    grid-template-columns:1.1fr .9fr;
    gap:28px;
    align-items:center;
}
.pill{
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:10px 14px;
    border:1px solid var(--border);
    border-radius:999px;
    color:#315fc7;
    background:rgba(91,140,255,.10);
    font-weight:700;
    font-size:.9rem;
}
.hero h1{
    font-size:clamp(2.3rem,5vw,4.8rem);
    line-height:.98;
    margin:18px 0;
    letter-spacing:-.05em;
}
.hero p{
    color:var(--muted);
    line-height:1.8;
    font-size:1.06rem;
}
.hero-actions{
    display:flex;
    gap:12px;
    flex-wrap:wrap;
    margin-top:26px;
}
.card{
    background:var(--card);
    border:1px solid var(--border);
    border-radius:24px;
    box-shadow:var(--shadow);
}
.preview{
    padding:22px;
}
.device-preview{
    background:linear-gradient(180deg,#ffffff,#eef5ff);
    padding:20px;
    border-radius:26px;
    border:1px solid var(--border);
}
.preview-top{
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-bottom:18px;
}
.badge{
    display:inline-flex;
    padding:8px 12px;
    border-radius:999px;
    font-size:.82rem;
    font-weight:700;
}
.badge-success{background:rgba(34,197,94,.14); color:#087443}
.badge-warning{background:rgba(245,158,11,.14); color:#9a5b00}
.badge-danger{background:rgba(239,68,68,.12); color:#b42318}
.badge-info{background:rgba(91,140,255,.14); color:#315fc7}

.mini-grid{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:14px;
}
.mini-box{
    padding:16px;
    border-radius:18px;
    background:#f8fbff;
    border:1px solid var(--border);
}
.mini-box h4{margin:0 0 6px;font-size:.95rem}
.mini-box p{margin:0;color:var(--muted);font-size:.9rem;line-height:1.6}

.section{padding:74px 0}
.section-head{text-align:center;margin-bottom:30px}
.section-head h2{
    margin:0 0 12px;
    font-size:clamp(1.8rem,3vw,2.7rem);
    letter-spacing:-.04em;
}
.section-head p{
    margin:0 auto;
    max-width:760px;
    color:var(--muted);
    line-height:1.8;
}
.grid-3{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:18px;
}
.feature-card{padding:24px}
.feature-icon{
    width:52px;height:52px;border-radius:16px;
    display:grid;place-items:center;
    background:rgba(91,140,255,.16);
    margin-bottom:16px;
    font-size:1.4rem;
}
.feature-card h3{margin:0 0 10px}
.feature-card p{margin:0;color:var(--muted);line-height:1.7}

.auth-wrap{
    min-height:100vh;
    display:grid;
    place-items:center;
    padding:30px 16px;
}
.auth-card{
    width:min(100%, 440px);
    padding:28px;
}
.auth-card h1{margin:0 0 10px;letter-spacing:-.03em}
.auth-card p{margin:0 0 22px;color:var(--muted)}
.form-group{margin-bottom:14px}
.label{display:block;margin-bottom:8px;color:#344054;font-weight:600}
.input{
    width:100%;
    padding:14px 16px;
    border-radius:14px;
    border:1px solid var(--border);
    background:var(--card-2);
    color:var(--text);
    outline:none;
}
.input:focus{border-color:rgba(91,140,255,.6)}
.alert{
    padding:14px 16px;
    border-radius:14px;
    margin-bottom:16px;
    font-size:.95rem;
}
.alert-success{background:rgba(34,197,94,.12); color:#087443; border:1px solid rgba(34,197,94,.22)}
.alert-danger{background:rgba(239,68,68,.12); color:#b42318; border:1px solid rgba(239,68,68,.22)}

.dashboard{
    padding:26px 0 58px;
}
.topbar{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
    flex-wrap:wrap;
    margin-bottom:18px;
    padding:24px;
    border-radius:28px;
    background:
            linear-gradient(135deg, #ffffff 0%, #eef5ff 100%);
    border:1px solid var(--border);
    box-shadow:var(--shadow);
}
.topbar h1{margin:0;letter-spacing:-.04em;font-size:clamp(1.75rem,3vw,2.5rem)}
.topbar p{margin:8px 0 0;color:var(--muted);max-width:760px;line-height:1.65}
.stats{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:16px;
    margin-bottom:18px;
}
.stat-card{
    padding:18px;
    border-radius:22px;
    position:relative;
    overflow:hidden;
}
.stat-card:before{
    content:"";
    position:absolute;
    top:0;
    left:0;
    right:0;
    height:4px;
    background:linear-gradient(90deg,var(--primary),#7dd3fc);
}
.stat-card span{display:block;color:var(--muted);margin-bottom:8px;font-size:.88rem;font-weight:700}
.stat-card strong{font-size:2rem;letter-spacing:-.04em}

.panel-grid{
    display:grid;
    grid-template-columns:1.15fr .85fr;
    gap:20px;
}
.table-card,.list-card,.my-devices-card{padding:18px;border-radius:24px}
.card-title{
    margin:0 0 14px;
    font-size:1.2rem;
    letter-spacing:-.03em;
}
.table-wrap{overflow:auto}
table{
    width:100%;
    border-collapse:collapse;
    min-width:880px;
    background:var(--card-2);
    border-radius:18px;
    overflow:hidden;
}
th,td{
    padding:13px 12px;
    border-bottom:1px solid var(--border);
    text-align:left;
    font-size:.95rem;
}
th{color:#52627a;font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;background:#eef4ff}
td{color:var(--text)}
.muted{color:var(--muted)}
.status{
    display:inline-flex;
    align-items:center;
    padding:7px 10px;
    border-radius:999px;
    font-size:.8rem;
    font-weight:700;
}
.status-pending{background:rgba(245,158,11,.14); color:#9a5b00}
.status-approved{background:rgba(34,197,94,.13); color:#087443}
.status-rejected{background:rgba(239,68,68,.12); color:#b42318}
.status-cancelled{background:rgba(148,163,184,.16); color:#475467}
.device-list{
    display:grid;
    gap:16px;
}
.device-item{
    padding:18px;
    border-radius:18px;
    border:1px solid var(--border);
    background:var(--card-2);
}
.device-item h3{margin:0 0 8px}
.device-meta{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:10px 16px;
    margin-top:12px;
}
.device-meta div{
    background:#fff;
    border:1px solid var(--border);
    padding:12px;
    border-radius:14px;
}
.footer{
    padding:26px 0 40px;
    color:var(--muted);
}

@media (max-width: 980px){
    .hero-grid,.panel-grid{grid-template-columns:1fr}
    .grid-3,.stats{grid-template-columns:1fr 1fr}
}
@media (max-width: 680px){
    .grid-3,.stats,.mini-grid,.device-meta{grid-template-columns:1fr}
    .hero{padding-top:56px}
    .hero-actions .btn{width:100%}
}

.footer a{
    color: inherit;
    text-decoration: none;
    opacity: .92;
}

.footer a:hover{
    text-decoration: underline;
    opacity: 1;
}
