*{
box-sizing:border-box;
}

body{
margin:0;
font-family:Arial,sans-serif;
background:
radial-gradient(circle at top, rgba(72,128,255,0.28), transparent 35%),
linear-gradient(180deg, #0f172a 0%, #111827 45%, #0b1220 100%);
color:#ffffff;
min-height:100vh;
}

.page-shell{
min-height:100vh;
display:flex;
align-items:center;
justify-content:center;
padding:32px 16px;
}

.upload-card,
.login-card{
width:min(760px, 100%);
background:rgba(15,23,42,0.88);
border:1px solid rgba(255,255,255,0.12);
border-radius:24px;
padding:32px;
box-shadow:0 30px 60px rgba(0,0,0,0.35);
backdrop-filter:blur(8px);
}

.login-card{
max-width:660px;
}

.top-meta{
display:flex;
justify-content:space-between;
align-items:center;
gap:12px;
margin-bottom:10px;
flex-wrap:wrap;
}

.top-actions{
display:flex;
gap:10px;
align-items:center;
flex-wrap:wrap;
justify-content:flex-end;
}

.card-badge{
display:inline-block;
padding:8px 14px;
border-radius:999px;
background:rgba(45,137,255,0.16);
color:#8ec5ff;
font-size:14px;
font-weight:bold;
margin-bottom:18px;
}

h1{
margin:0 0 10px;
font-size:36px;
line-height:1.1;
}

.intro{
margin:0 0 26px;
font-size:17px;
line-height:1.5;
color:#cbd5e1;
}

.upload-form,
.login-form{
display:flex;
flex-direction:column;
gap:18px;
}

.field-group{
display:flex;
flex-direction:column;
gap:8px;
text-align:left;
}

.field-group label{
font-size:16px;
font-weight:bold;
color:#e5edf8;
}

.field-group input{
width:100%;
padding:14px 16px;
border-radius:14px;
border:1px solid rgba(255,255,255,0.14);
background:rgba(255,255,255,0.06);
color:#ffffff;
font-size:16px;
outline:none;
}

.field-group input:focus{
border-color:#60a5fa;
box-shadow:0 0 0 3px rgba(96,165,250,0.18);
}

.drop-zone{
border:2px dashed rgba(255,255,255,0.25);
border-radius:20px;
padding:36px 20px;
text-align:center;
cursor:pointer;
background:rgba(255,255,255,0.03);
transition:all .2s ease;
outline:none;
}

.drop-zone:hover,
.drop-zone:focus,
.drop-zone.dragover{
border-color:#60a5fa;
background:rgba(96,165,250,0.10);
transform:translateY(-1px);
}

.drop-icon{
width:68px;
height:68px;
margin:0 auto 16px;
border-radius:18px;
display:flex;
align-items:center;
justify-content:center;
font-size:32px;
background:linear-gradient(135deg, #2d89ff, #7c3aed);
box-shadow:0 12px 24px rgba(45,137,255,0.25);
}

.drop-title{
font-size:22px;
font-weight:bold;
margin-bottom:8px;
}

.drop-subtitle{
font-size:15px;
color:#cbd5e1;
}

.file-summary,
.status-box,
.progress-wrap{
background:rgba(255,255,255,0.05);
border:1px solid rgba(255,255,255,0.08);
border-radius:16px;
padding:16px;
}

.file-summary{
color:#e2e8f0;
text-align:left;
}

.file-list{
margin:12px 0 0;
padding-left:18px;
}

.file-list li{
margin:6px 0;
word-break:break-word;
}

.file-list span{
color:#94a3b8;
}

.actions,
.login-links{
display:flex;
justify-content:center;
gap:12px;
flex-wrap:wrap;
margin-top:6px;
}

button,
.primary-btn{
background:linear-gradient(135deg, #2d89ff, #2563eb);
color:#ffffff;
border:none;
padding:14px 24px;
border-radius:14px;
cursor:pointer;
font-size:17px;
font-weight:bold;
min-width:240px;
box-shadow:0 12px 24px rgba(37,99,235,0.28);
transition:transform .15s ease, opacity .15s ease;
}

button:hover,
.primary-btn:hover{
transform:translateY(-1px);
}

button:disabled{
opacity:0.7;
cursor:wait;
transform:none;
}

.progress-label{
display:flex;
justify-content:space-between;
gap:12px;
margin-bottom:10px;
font-size:14px;
color:#cbd5e1;
}

.progress-bar{
width:100%;
height:14px;
background:rgba(255,255,255,0.08);
border-radius:999px;
overflow:hidden;
}

.progress-bar-fill{
width:0%;
height:100%;
background:linear-gradient(90deg, #22c55e, #2d89ff);
border-radius:999px;
transition:width .2s ease;
}

.status-box{
min-height:56px;
display:flex;
align-items:center;
justify-content:center;
text-align:center;
color:#e2e8f0;
}

.status-success{
border-color:rgba(34,197,94,0.35);
background:rgba(34,197,94,0.10);
color:#dcfce7;
}

.status-error{
border-color:rgba(239,68,68,0.35);
background:rgba(239,68,68,0.10);
color:#fee2e2;
}

.logout-link,
.home-link-inline,
.secondary-link,
.home-link,
.logout-link:link,
.home-link-inline:link,
.secondary-link:link,
.home-link:link,
.logout-link:visited,
.home-link-inline:visited,
.secondary-link:visited,
.home-link:visited,
.logout-link:hover,
.home-link-inline:hover,
.secondary-link:hover,
.home-link:hover,
.logout-link:active,
.home-link-inline:active,
.secondary-link:active,
.home-link:active{
display:inline-block;
text-decoration:none !important;
font-weight:bold;
color:#ffffff !important;
}

.logout-link,
.home-link-inline,
.secondary-link{
padding:10px 14px;
border-radius:12px;
background:rgba(255,255,255,0.06);
border:1px solid rgba(255,255,255,0.10);
}

.logout-link:hover,
.home-link-inline:hover,
.secondary-link:hover,
.home-link:hover{
opacity:0.92;
transform:translateY(-1px);
}

.home-link{
margin-top:12px;
text-align:center;
}

#fileInput{
display:none;
}

@media (max-width: 640px){
.upload-card,
.login-card{
padding:22px;
border-radius:20px;
}
h1{
font-size:28px;
}
.drop-title{
font-size:18px;
}
button,
.primary-btn{
width:100%;
min-width:0;
}
.top-meta{
align-items:flex-start;
}
.top-actions{
width:100%;
justify-content:flex-start;
}
.logout-link,
.home-link-inline,
.secondary-link{
width:100%;
text-align:center;
}
}
