/* ==========================
   GOOGLE FONT
========================== */

@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700;800&display=swap');

/* ==========================
RESET
========================== */

*{
margin:0;
padding:0;
box-sizing:border-box;
}

html{
scroll-behavior:smooth;
}

body{

font-family:'Poppins',sans-serif;

background:#070b17;

color:#fff;

overflow-x:hidden;

min-height:100vh;

position:relative;

}

/* ==========================
BACKGROUND
========================== */

.background-blur{

position:fixed;

border-radius:50%;

filter:blur(130px);

z-index:-1;

opacity:.45;

}

.blur1{

width:380px;

height:380px;

background:#5b6cff;

top:-120px;

left:-100px;

}

.blur2{

width:350px;

height:350px;

background:#8f3cff;

right:-100px;

bottom:-100px;

}

/* ==========================
WRAPPER
========================== */

.calculator-wrapper{

max-width:1300px;

margin:auto;

padding:50px 20px;

}

/* ==========================
MAIN CARD
========================== */

.calculator-card{

background:rgba(255,255,255,.05);

border:1px solid rgba(255,255,255,.10);

backdrop-filter:blur(20px);

border-radius:28px;

padding:40px;

box-shadow:

0 20px 60px rgba(0,0,0,.35);

}

/* ==========================
HEADER
========================== */

.header{

display:flex;

justify-content:space-between;

align-items:center;

gap:30px;

margin-bottom:45px;

flex-wrap:wrap;

}

.header h1{

font-size:2.3rem;

font-weight:700;

display:flex;

align-items:center;

gap:15px;

}

.header h1 i{

color:#ffc83d;

}

.header p{

margin-top:10px;

color:#bfc6d9;

font-size:15px;

line-height:1.7;

max-width:650px;

}

/* ==========================
HOME BUTTON
========================== */

.home-btn{

text-decoration:none;

background:linear-gradient(135deg,#5b6cff,#8f3cff);

padding:13px 24px;

border-radius:14px;

color:#fff;

font-weight:600;

display:flex;

align-items:center;

gap:10px;

transition:.35s;

box-shadow:

0 10px 30px rgba(91,108,255,.35);

}

.home-btn:hover{

transform:translateY(-4px);

box-shadow:

0 20px 40px rgba(91,108,255,.45);

}

/* ==========================
INPUT SECTION
========================== */

.input-section{

display:grid;

grid-template-columns:

repeat(auto-fit,minmax(260px,1fr));

gap:25px;

margin-bottom:45px;

}

.input-card{

display:flex;

flex-direction:column;

gap:10px;

}

.input-card label{

font-weight:600;

color:#d9e0ef;

}

.input-card input{

height:58px;

padding:0 18px;

border-radius:14px;

border:1px solid rgba(255,255,255,.15);

background:rgba(255,255,255,.06);

color:#fff;

font-size:15px;

outline:none;

transition:.3s;

}

.input-card input:focus{

border-color:#5b6cff;

box-shadow:

0 0 20px rgba(91,108,255,.35);

}

/* ==========================
BUTTON
========================== */

.calculate-btn{

height:58px;

margin-top:34px;

border:none;

border-radius:14px;

background:

linear-gradient(135deg,#5b6cff,#8f3cff);

color:#fff;

font-size:16px;

font-weight:600;

cursor:pointer;

display:flex;

align-items:center;

justify-content:center;

gap:10px;

transition:.3s;

box-shadow:

0 15px 30px rgba(91,108,255,.35);

}

.calculate-btn:hover{

transform:translateY(-3px);

box-shadow:

0 22px 45px rgba(91,108,255,.45);

}

/* ==========================
RESULT CARD
========================== */

.result-card{

background:rgba(255,255,255,.04);

border:1px solid rgba(255,255,255,.10);

border-radius:24px;

padding:35px;

margin-bottom:35px;

}

.result-header{

margin-bottom:30px;

}

.result-header h2{

font-size:1.7rem;

display:flex;

align-items:center;

gap:12px;

}

.result-header i{

color:#ffd54f;

}

/* ==========================
AGE GRID
========================== */

.age-grid{

display:grid;

grid-template-columns:repeat(auto-fit,minmax(180px,1fr));

gap:25px;

}

.age-box{

background:rgba(255,255,255,.06);

border:1px solid rgba(255,255,255,.10);

border-radius:20px;

padding:30px 20px;

text-align:center;

transition:.35s;

cursor:default;

}

.age-box:hover{

transform:translateY(-8px);

border-color:#5b6cff;

box-shadow:0 20px 40px rgba(91,108,255,.25);

}

.age-box h3{

font-size:3rem;

font-weight:700;

background:linear-gradient(135deg,#5b6cff,#8f3cff);

-webkit-background-clip:text;

-webkit-text-fill-color:transparent;

margin-bottom:8px;

}

.age-box span{

color:#c8d0e4;

font-size:15px;

}

/* ==========================
DETAILS GRID
========================== */

.details-grid{

display:grid;

grid-template-columns:repeat(auto-fit,minmax(330px,1fr));

gap:25px;

margin-bottom:35px;

}

.info-card{

background:rgba(255,255,255,.05);

border:1px solid rgba(255,255,255,.10);

border-radius:22px;

padding:28px;

transition:.3s;

}

.info-card:hover{

transform:translateY(-6px);

box-shadow:0 18px 35px rgba(0,0,0,.25);

}

.info-card h3{

display:flex;

align-items:center;

gap:10px;

margin-bottom:22px;

font-size:1.3rem;

}

.info-card h3 i{

color:#5b6cff;

}

.info-row{

display:flex;

justify-content:space-between;

align-items:center;

padding:14px 0;

border-bottom:1px solid rgba(255,255,255,.08);

gap:20px;

}

.info-row:last-child{

border-bottom:none;

}

.info-row span{

color:#bfc6d9;

}

.info-row strong{

font-weight:600;

text-align:right;

}

/* ==========================
STATISTICS CARD
========================== */

.stats-card{

background:rgba(255,255,255,.05);

border:1px solid rgba(255,255,255,.10);

border-radius:24px;

padding:35px;

margin-bottom:35px;

}

.stats-card h2{

display:flex;

align-items:center;

gap:12px;

margin-bottom:30px;

font-size:1.7rem;

}

.stats-card h2 i{

color:#5b6cff;

}

.stats-grid{

display:grid;

grid-template-columns:repeat(auto-fit,minmax(170px,1fr));

gap:22px;

}

.stat-box{

background:rgba(255,255,255,.06);

border:1px solid rgba(255,255,255,.10);

border-radius:18px;

padding:24px;

text-align:center;

transition:.3s;

}

.stat-box:hover{

transform:translateY(-6px);

border-color:#8f3cff;

box-shadow:0 18px 35px rgba(143,60,255,.25);

}

.stat-box h3{

font-size:2rem;

font-weight:700;

margin-bottom:8px;

color:#ffffff;

}

.stat-box span{

font-size:14px;

color:#bfc6d9;

}

/* ==========================
ACTION BUTTONS
========================== */

.action-buttons{

display:flex;

justify-content:center;

flex-wrap:wrap;

gap:20px;

margin-top:10px;

}

.action-buttons button{

border:none;

padding:15px 28px;

border-radius:14px;

font-size:15px;

font-weight:600;

cursor:pointer;

display:flex;

align-items:center;

gap:10px;

transition:.3s;

color:#fff;

}

#copyBtn{

background:linear-gradient(135deg,#00b894,#00cec9);

}

#printBtn{

background:linear-gradient(135deg,#0984e3,#6c5ce7);

}

#resetBtn{

background:linear-gradient(135deg,#ff7675,#d63031);

}

.action-buttons button:hover{

transform:translateY(-4px);

box-shadow:0 15px 35px rgba(0,0,0,.30);

}

/* ==========================
FOOTER
========================== */

.tool-footer{

margin-top:45px;

padding-top:25px;

border-top:1px solid rgba(255,255,255,.08);

text-align:center;

color:#bfc6d9;

font-size:14px;

}

.tool-footer span{

margin:0 10px;

color:#5b6cff;

}

/* ==========================
LOADER
========================== */

.loader-overlay{

position:fixed;

top:0;

left:0;

width:100%;

height:100%;

background:rgba(7,11,23,.85);

backdrop-filter:blur(10px);

display:none;

justify-content:center;

align-items:center;

flex-direction:column;

z-index:9999;

}

.loader{

width:70px;

height:70px;

border:6px solid rgba(255,255,255,.15);

border-top:6px solid #5b6cff;

border-radius:50%;

animation:spin 1s linear infinite;

margin-bottom:20px;

}

.loader-overlay p{

font-size:18px;

font-weight:600;

color:#fff;

}

@keyframes spin{

0%{

transform:rotate(0deg);

}

100%{

transform:rotate(360deg);

}

}

/* ==========================
TOAST
========================== */

.toast{

position:fixed;

bottom:30px;

right:30px;

background:#111827;

border:1px solid rgba(255,255,255,.08);

padding:16px 22px;

border-radius:14px;

display:flex;

align-items:center;

gap:12px;

color:#fff;

opacity:0;

pointer-events:none;

transform:translateY(30px);

transition:.35s;

box-shadow:0 15px 35px rgba(0,0,0,.35);

z-index:9999;

}

.toast.show{

opacity:1;

pointer-events:auto;

transform:translateY(0);

}

.toast i{

color:#00d084;

font-size:20px;

}

/* ==========================
BACK TO TOP
========================== */

.top-btn{

position:fixed;

right:25px;

bottom:100px;

width:52px;

height:52px;

border:none;

border-radius:50%;

background:linear-gradient(135deg,#5b6cff,#8f3cff);

color:#fff;

font-size:18px;

cursor:pointer;

display:none;

align-items:center;

justify-content:center;

box-shadow:0 15px 30px rgba(91,108,255,.35);

transition:.3s;

z-index:999;

}

.top-btn:hover{

transform:translateY(-5px);

}

/* ==========================
SCROLLBAR
========================== */

::-webkit-scrollbar{

width:10px;

}

::-webkit-scrollbar-track{

background:#0f172a;

}

::-webkit-scrollbar-thumb{

background:linear-gradient(#5b6cff,#8f3cff);

border-radius:20px;

}

::-webkit-scrollbar-thumb:hover{

background:#7b61ff;

}

/* ==========================
FADE ANIMATION
========================== */

@keyframes fadeUp{

from{

opacity:0;

transform:translateY(25px);

}

to{

opacity:1;

transform:translateY(0);

}

}

.calculator-card{

animation:fadeUp .8s ease;

}

/* ==========================
TABLET
========================== */

@media(max-width:992px){

.calculator-card{

padding:30px;

}

.header{

flex-direction:column;

align-items:flex-start;

}

.header h1{

font-size:2rem;

}

.details-grid{

grid-template-columns:1fr;

}

.stats-grid{

grid-template-columns:repeat(2,1fr);

}

}

/* ==========================
MOBILE
========================== */

@media(max-width:768px){

.calculator-wrapper{

padding:20px 15px;

}

.calculator-card{

padding:22px;

border-radius:22px;

}

.header h1{

font-size:1.7rem;

}

.result-header h2,

.stats-card h2{

font-size:1.35rem;

}

.age-grid{

grid-template-columns:1fr;

}

.stats-grid{

grid-template-columns:1fr;

}

.action-buttons{

flex-direction:column;

}

.action-buttons button{

width:100%;

justify-content:center;

}

.home-btn{

width:100%;

justify-content:center;

}

.input-section{

grid-template-columns:1fr;

}

}

/* ==========================
SMALL MOBILE
========================== */

@media(max-width:480px){

.header h1{

font-size:1.45rem;

}

.age-box h3{

font-size:2.3rem;

}

.stat-box h3{

font-size:1.5rem;

}

.toast{

left:15px;

right:15px;

bottom:15px;

}

.top-btn{

right:15px;

bottom:90px;

}

}