:root{
--base:radial-gradient(circle at top,#dbeafe,#eff6ff);
--card:#ffffff;
--primary:#2563eb;
--text:#1f2937;
--border:#e5e7eb;
--radius:10px;
}

body{
font-family:"Source Sans Pro",sans-serif;
background:var(--base);
margin:0;
padding:40px 20px;
color:var(--text);
}

.wrapper{
max-width:800px;
margin:auto;
background:var(--card);
padding:40px;
border-radius:var(--radius);
box-shadow:0 10px 30px rgba(0,0,0,.08);
}

h1{
margin:0 0 50px 0;
font-weight:700;
font-size:28px;
text-align:center;
}

h2{
font-size:18px;
font-weight:600;
margin:0 0 20px 0;
}

h2.startdate{
margin:0;
}

.card{
background:#fafafa;
padding:20px;
border-radius:var(--radius);
border:1px solid var(--border);
margin-bottom:20px;
}

.card-header{
display:flex;
justify-content:space-between;
align-items:center;
margin-bottom:20px;
}

.today-btn{
background:#eef2ff;
border:1px solid #dbeafe;
color:#2563eb;
font-size:13px;
margin: 0 !important;
padding:6px 10px;
border-radius:6px;
cursor:pointer;
transition:.2s;
}

.today-btn:hover{
background:#dbeafe;
}

.date-row{
display:flex;
gap:15px;
}

.field{
flex:1;
}

input,
select{
width:100%;
padding:11px 12px;
font-size:15px;
border-radius:8px;
border:1px solid var(--border);
background:#fff;
box-sizing:border-box;
transition:.2s;
}

input:focus,
select:focus{
outline:none;
border-color:var(--primary);
box-shadow:0 0 0 2px rgba(37,99,235,.15);
}

.form-group-inline{
display:flex;
align-items:center;
gap:10px;
}

.form-group-inline span{
color:#252525;
font-size:14px;
}

button{
margin-top:10px;
background:var(--primary);
color:#fff;
border:none;
padding:12px 20px;
font-size:15px;
border-radius:8px;
cursor:pointer;
font-weight:500;
transition:.2s;
}

button:hover{
background:#1d4ed8;
transform:translateY(-1px);
box-shadow:0 6px 15px rgba(0,0,0,.15);
}

.result{
text-align:center;
margin-top:30px;
padding:20px;
background:#f8fafc;
border-radius:var(--radius);
border:1px solid var(--border);
}

.result h3{
margin:0 0 10px 0;
font-size:20px;
color:#252525;
font-weight:600;
}

#resultDate{
font-size:28px;
font-weight:600;
}

.error{
color:#dc2626;
margin-top:10px;
font-size:14px;
}

.footer{
margin-top:30px;
text-align:center;
font-size:14px;
font-weight:600;
color:#252525;
}

.credit a{
color:var(--primary);
text-decoration:none;
font-weight:600;
}

.credit a:hover{
text-decoration:underline;
}

@media(max-width:680px){
body{
padding-left:0;
padding-right:0;
}

.card,.wrapper{
padding:20px 10px;
}

.date-row{
gap:10px;
}

h1{
margin-top:15px;
font-size:24px;
}
}