/* =====================================================
   niDar Tools v3 Professional Stylesheet
   Part 1 - Reset, Theme, Layout & Navigation
   ===================================================== */

/* ---------- CSS Variables ---------- */

:root{

--primary:#0d6efd;
--primary-dark:#0b5ed7;
--secondary:#6c757d;

--success:#198754;
--danger:#dc3545;
--warning:#ffc107;

--background:#f8f9fa;
--surface:#ffffff;

--text:#212529;
--text-light:#6c757d;

--border:#dee2e6;

--radius:12px;

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

--transition:
all .30s ease;

}

/* ---------- Dark Theme ---------- */

body.dark{

--background:#111827;

--surface:#1f2937;

--text:#f3f4f6;

--text-light:#d1d5db;

--border:#374151;

}

/* ---------- Reset ---------- */

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

/* ---------- HTML ---------- */

html{

scroll-behavior:smooth;

}

/* ---------- Body ---------- */

body{

background:var(--background);

color:var(--text);

font-family:
Arial,
Helvetica,
sans-serif;

line-height:1.7;

transition:var(--transition);

}

/* ---------- Images ---------- */

img{

max-width:100%;

display:block;

}

/* ---------- Links ---------- */

a{

text-decoration:none;

color:var(--primary);

transition:var(--transition);

}

a:hover{

color:var(--primary-dark);

}

/* ---------- Container ---------- */

.container{

width:min(1200px,92%);

margin:auto;

}

/* ---------- Header ---------- */

header{

background:var(--surface);

box-shadow:var(--shadow);

position:sticky;

top:0;

z-index:1000;

}

/* ---------- Navigation ---------- */

.nav{

display:flex;

align-items:center;

justify-content:space-between;

padding:16px 0;

}

.logo{

font-size:28px;

font-weight:bold;

color:var(--primary);

}

.nav-links{

display:flex;

gap:20px;

list-style:none;

}

.nav-links a{

font-weight:600;

padding:8px 14px;

border-radius:8px;

}

.nav-links a:hover{

background:var(--primary);

color:#fff;

}

/* ---------- Mobile Menu Button ---------- */

.menu-btn{

display:none;

cursor:pointer;

font-size:28px;

}

/* ---------- Main ---------- */

main{

padding:40px 0;

}

/* ---------- Section ---------- */

section{

margin-bottom:50px;

}

/* ---------- Headings ---------- */

h1{

font-size:42px;

margin-bottom:18px;

}

h2{

font-size:30px;

margin-bottom:14px;

}

h3{

font-size:22px;

margin-bottom:10px;

}

p{

margin-bottom:15px;

color:var(--text-light);

}

/* ---------- Buttons ---------- */

.btn{

display:inline-block;

padding:12px 22px;

background:var(--primary);

color:#fff;

border-radius:10px;

transition:var(--transition);

}

.btn:hover{

background:var(--primary-dark);

}

/* ---------- Responsive ---------- */

@media(max-width:768px){

.nav{

flex-wrap:wrap;

}

.nav-links{

display:none;

flex-direction:column;

width:100%;

padding-top:20px;

}

.nav-links.active{

display:flex;

}

.menu-btn{

display:block;

}

h1{

font-size:32px;

}

h2{

font-size:24px;

}

}

/* =====================================================
   Part 2 - Hero, Search, Grid, Cards & Utilities
   ===================================================== */

/* ---------- Hero Section ---------- */

.hero{
padding:80px 20px;
text-align:center;
background:linear-gradient(135deg,#0d6efd,#4f8cff);
color:#ffffff;
border-radius:16px;
margin-bottom:50px;
}

.hero h1{
font-size:48px;
margin-bottom:20px;
color:#ffffff;
}

.hero p{
max-width:760px;
margin:0 auto 30px;
font-size:18px;
color:#f8f9fa;
}

/* ---------- Search Box ---------- */

.search-box{
display:flex;
justify-content:center;
gap:12px;
flex-wrap:wrap;
margin-top:20px;
}

.search-box input{
width:min(500px,100%);
padding:14px 18px;
border:1px solid var(--border);
border-radius:10px;
font-size:16px;
background:var(--surface);
color:var(--text);
}

.search-box input:focus{
outline:none;
border-color:var(--primary);
}

/* ---------- Grid ---------- */

.grid{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
gap:24px;
margin-top:30px;
}

/* ---------- Cards ---------- */

.card{
background:var(--surface);
border:1px solid var(--border);
border-radius:14px;
padding:24px;
box-shadow:var(--shadow);
transition:var(--transition);
}

.card:hover{
transform:translateY(-6px);
box-shadow:0 12px 30px rgba(0,0,0,.15);
}

.card h3{
margin-bottom:12px;
color:var(--text);
}

.card p{
margin-bottom:18px;
}

/* ---------- Tool Icon ---------- */

.tool-icon{
font-size:42px;
margin-bottom:16px;
}

/* ---------- Section Title ---------- */

.section-title{
text-align:center;
margin-bottom:30px;
}

.section-title p{
max-width:650px;
margin:auto;
}

/* ---------- Stats ---------- */

.stats{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
gap:20px;
margin-top:40px;
}

.stat-box{
background:var(--surface);
padding:25px;
text-align:center;
border-radius:12px;
box-shadow:var(--shadow);
}

.stat-box h2{
color:var(--primary);
margin-bottom:8px;
}

/* ---------- Badge ---------- */

.badge{
display:inline-block;
padding:6px 12px;
border-radius:20px;
background:var(--primary);
color:#ffffff;
font-size:13px;
font-weight:bold;
}

/* ---------- Utility Classes ---------- */

.text-center{
text-align:center;
}

.mt-20{
margin-top:20px;
}

.mt-40{
margin-top:40px;
}

.mb-20{
margin-bottom:20px;
}

.mb-40{
margin-bottom:40px;
}

/* ---------- Responsive ---------- */

@media (max-width:768px){

.hero{
padding:60px 20px;
}

.hero h1{
font-size:34px;
}

.hero p{
font-size:16px;
}

.search-box{
flex-direction:column;
align-items:center;
}

.search-box input{
width:100%;
}

.grid{
grid-template-columns:1fr;
}

.stats{
grid-template-columns:1fr 1fr;
}

}

@media (max-width:480px){

.stats{
grid-template-columns:1fr;
}

.hero h1{
font-size:28px;
}

}


/* =====================================================
   Part 3 - Footer, Forms, Tables, Alerts, Animations
   ===================================================== */

/* ---------- Footer ---------- */

footer{
margin-top:60px;
padding:40px 20px;
background:var(--surface);
border-top:1px solid var(--border);
text-align:center;
}

footer p{
margin:8px 0;
color:var(--text-light);
}

.footer-links{
display:flex;
justify-content:center;
gap:20px;
flex-wrap:wrap;
margin:20px 0;
}

.footer-links a{
color:var(--text);
font-weight:600;
}

.footer-links a:hover{
color:var(--primary);
}

/* ---------- Forms ---------- */

form{
max-width:700px;
margin:auto;
}

label{
display:block;
margin-bottom:8px;
font-weight:600;
}

input,
textarea,
select{
width:100%;
padding:14px;
margin-bottom:18px;
border:1px solid var(--border);
border-radius:10px;
background:var(--surface);
color:var(--text);
font-size:16px;
transition:var(--transition);
}

input:focus,
textarea:focus,
select:focus{
outline:none;
border-color:var(--primary);
box-shadow:0 0 0 3px rgba(13,110,253,.15);
}

textarea{
min-height:150px;
resize:vertical;
}

/* ---------- Tables ---------- */

table{
width:100%;
border-collapse:collapse;
margin:25px 0;
background:var(--surface);
}

th,
td{
padding:14px;
border:1px solid var(--border);
text-align:left;
}

th{
background:var(--primary);
color:#fff;
}

/* ---------- Alerts ---------- */

.alert{
padding:16px;
border-radius:10px;
margin:20px 0;
font-weight:500;
}

.alert-success{
background:#d1e7dd;
color:#0f5132;
}

.alert-warning{
background:#fff3cd;
color:#664d03;
}

.alert-danger{
background:#f8d7da;
color:#842029;
}

/* ---------- Loader ---------- */

.loader{
width:42px;
height:42px;
border:4px solid #ddd;
border-top:4px solid var(--primary);
border-radius:50%;
animation:spin 1s linear infinite;
margin:auto;
}

@keyframes spin{
0%{transform:rotate(0deg);}
100%{transform:rotate(360deg);}
}

/* ---------- Scroll To Top ---------- */

#scrollTopBtn{
background:var(--primary);
color:#fff;
border:none;
border-radius:50%;
width:48px;
height:48px;
font-size:20px;
box-shadow:var(--shadow);
transition:var(--transition);
}

#scrollTopBtn:hover{
background:var(--primary-dark);
transform:translateY(-4px);
}

/* ---------- Animations ---------- */

.fade-in{
animation:fadeIn .8s ease;
}

.slide-up{
animation:slideUp .8s ease;
}

.zoom-in{
animation:zoomIn .6s ease;
}

@keyframes fadeIn{
from{
opacity:0;
}
to{
opacity:1;
}
}

@keyframes slideUp{
from{
opacity:0;
transform:translateY(30px);
}
to{
opacity:1;
transform:translateY(0);
}
}

@keyframes zoomIn{
from{
opacity:0;
transform:scale(.9);
}
to{
opacity:1;
transform:scale(1);
}
}

/* ---------- Utility Classes ---------- */

.rounded{
border-radius:var(--radius);
}

.shadow{
box-shadow:var(--shadow);
}

.hidden{
display:none;
}

.flex{
display:flex;
}

.flex-center{
display:flex;
justify-content:center;
align-items:center;
}

.space-between{
display:flex;
justify-content:space-between;
align-items:center;
}

.text-primary{
color:var(--primary);
}

.bg-primary{
background:var(--primary);
color:#fff;
}

/* ---------- Responsive ---------- */

@media (max-width:768px){

.footer-links{
flex-direction:column;
gap:12px;
}

table{
display:block;
overflow-x:auto;
}

input,
textarea,
select{
font-size:15px;
}

.btn{
width:100%;
text-align:center;
}

}

