
/* STATE SEARCH */

.state-select{
position:relative;
width:100%;
}

#stateSearch{
width:100%;
height:44px;
padding:10px;
border-radius:10px;
border:1px solid #ccc;
font-size:15px;
}

.state-list{
position:absolute;
top:48px;
left:0;
right:0;
background:white;
border-radius:8px;
box-shadow:0 8px 20px rgba(0,0,0,0.1);
max-height:180px;
overflow-y:auto;
display:none;
z-index:100;
}

.state-option{
padding:10px 14px;
cursor:pointer;
font-size:14px;
}

.state-option:hover{
background:#0b4da2;
color:white;
}

/* bracket explanation */

#bracketVisualization{
margin-top:20px;
display:flex;
flex-direction:column;
gap:8px;
}

.bracket-row{
display:flex;
justify-content:space-between;
background:#f3f6fb;
border-radius:8px;
padding:10px;
}

.bracket-row.active{
background:linear-gradient(90deg,#0b4da2,#2fa84f);
color:white;
font-weight:600;
}


/* ---------------- GLOBAL ---------------- */

*{
box-sizing:border-box;
margin:0;
padding:0;
}

body{
font-family: "Inter", Arial, sans-serif;
color:#1f2937;
overflow-x:hidden;
}

/* ---------------- MAIN CARD ---------------- */

.calculator{

max-width:1000px;
margin:auto;

background: rgba(255,255,255,0.9);
backdrop-filter: blur(10px);

padding:30px;

border-radius:20px;

box-shadow:
0 15px 40px rgba(0,0,0,0.08),
0 5px 15px rgba(11,77,162,0.08);

border-top:6px solid #2fa84f;

transition:0.35s ease;

animation: cardEntrance .7s ease;
}

.calculator:hover{
transform:translateY(-4px);
box-shadow:
0 20px 50px rgba(0,0,0,0.12),
0 8px 20px rgba(11,77,162,0.12);
}

/* ---------------- TITLE ---------------- */

.calculator h1{

text-align:center;

font-size:28px;

margin-bottom:25px;

font-weight:700;

background: linear-gradient(90deg,#0b4da2,#2fa84f);
-webkit-background-clip:text;
color:transparent;

}

/* ---------------- GUIDE CONTENT SECTION ---------------- */

.us-tax-guide{
max-width:1000px;
margin:28px auto 50px;
display:flex;
flex-direction:column;
gap:20px;
}

.guide-grid{
display:grid;
grid-template-columns:repeat(2,minmax(0,1fr));
gap:20px;
}

.guide-card{
background:#ffffff;
border:1px solid #e5eaf3;
border-radius:18px;
padding:24px;
box-shadow:0 10px 25px rgba(11,77,162,0.06);
}

.guide-card h2{
font-size:28px;
margin-bottom:14px;
color:#0b4da2;
}

.guide-card h3{
font-size:20px;
margin-bottom:12px;
color:#0b4da2;
}

.guide-card p{
font-size:15px;
line-height:1.8;
color:#374151;
margin-bottom:12px;
}

.guide-card p:last-child{
margin-bottom:0;
}

.guide-card ul{
padding-left:18px;
margin:0;
}

.guide-card li{
font-size:15px;
line-height:1.8;
color:#374151;
margin-bottom:8px;
}

.guide-card li:last-child{
margin-bottom:0;
}

.guide-cta{
background:linear-gradient(135deg,#f3f7ff,#eefaf3);
border:1px solid #d8e6f7;
}

.guide-cta a{
display:inline-block;
margin-top:10px;
padding:12px 18px;
border-radius:10px;
background:linear-gradient(135deg,#0b4da2,#2fa84f);
color:#ffffff;
text-decoration:none;
font-weight:700;
transition:.25s ease;
}

.guide-cta a:hover{
transform:translateY(-2px);
box-shadow:0 10px 20px rgba(11,77,162,0.15);
}

/* ---------------- GRID LAYOUT ---------------- */

.row{

display:grid;

grid-template-columns: repeat(auto-fit,minmax(240px,1fr));

gap:18px;

margin-bottom:20px;

}

/* ---------------- LABEL ---------------- */

label{

display:block;

font-weight:600;

margin-bottom:6px;

color:#0b4da2;

font-size:14px;

}

/* ---------------- INPUTS ---------------- */

input,
select{

width:100%;

height:46px;

padding:0 14px;

border-radius:12px;

border:1px solid #e3e8f2;

font-size:15px;

background:#ffffff;

transition:.25s ease;

}

/* hover */

input:hover,
select:hover{

border-color:#0b4da2;

box-shadow:0 4px 12px rgba(11,77,162,0.15);

}

/* focus */

input:focus,
select:focus{

outline:none;

border-color:#2fa84f;

box-shadow:0 0 0 3px rgba(47,168,79,0.18);

transform:scale(1.02);

}

/* result fields */

.locked{

background: linear-gradient(135deg,#f0f7ff,#eef9f2);

font-weight:700;

color:#0b4da2;

border:1px solid #2fa84f;

}

/* ---------------- TABLE ---------------- */

table{

width:100%;

margin-top:25px;

border-collapse:collapse;

overflow:hidden;

border-radius:14px;

box-shadow:0 8px 25px rgba(0,0,0,0.06);

}

/* header */

th{

background: linear-gradient(135deg,#0b4da2,#2fa84f);

color:white;

font-size:14px;

font-weight:700;

padding:12px;

text-align:left;

}

/* cells */

td{

padding:12px;

font-size:14px;

border-bottom:1px solid #eef2f7;

transition:.25s;

}

/* hover rows */

tr:hover td{

background:#f6faff;

}

/* total row */

.green{

font-weight:700;

color:#0a8f3c;

background:linear-gradient(135deg,#eef9f2,#f3f7ff);

}

/* ---------------- TAX CHART ---------------- */

.tax-chart-area{

margin-top:35px;

padding:25px;

border-radius:18px;

background:linear-gradient(135deg,#f3f7ff,#eefaf3);

border:1px solid #e4e9f2;

box-shadow:0 8px 25px rgba(11,77,162,0.08);

}

.tax-chart-area h3{

text-align:center;

margin-bottom:20px;

font-size:20px;

color:#0b4da2;

font-weight:700;

}

/* ---------------- ANIMATIONS ---------------- */

@keyframes cardEntrance{

from{
opacity:0;
transform:translateY(40px);
}

to{
opacity:1;
transform:translateY(0);
}

}

/* ---------------- MOBILE DESIGN ---------------- */

@media (max-width:768px){

.calculator{

padding:22px;

}

.calculator h1{

font-size:22px;

margin-bottom:20px;

}

.row{

grid-template-columns:1fr;

gap:14px;

}

input,
select{

height:44px;

font-size:14px;

}

th,td{

font-size:13px;

padding:10px;

}

.tax-chart-area{

padding:18px;

}

}

.guide-grid{
grid-template-columns:1fr;
}

.guide-card{
padding:20px;
}

.guide-card h2{
font-size:24px;
}

.guide-card h3{
font-size:18px;
}

/* ---------------- SMALL MOBILE ---------------- */

@media (max-width:480px){

.calculator{

padding:18px;

}

.calculator h1{

font-size:20px;

}

table{

font-size:12px;

}

}





