*{
box-sizing:border-box;
font-family:-apple-system,BlinkMacSystemFont,sans-serif;
-webkit-tap-highlight-color:transparent;
}

:root{
--bg:#f6f6f7;
--card:#ffffff;
--text:#111111;
--sub:#666666;
--line:#e5e5e7;
--hover:#efefef;
--shadow:0 10px 30px rgba(0,0,0,.06);
}

@media (prefers-color-scheme:dark){
:root{
--bg:#0f0f10;
--card:#1a1a1c;
--text:#ffffff;
--sub:#9f9fa7;
--line:#2a2a2d;
--hover:#232326;
--shadow:0 10px 30px rgba(0,0,0,.35);
}
}

html,body{
margin:0;
background:var(--bg);
color:var(--text);
min-height:100%;
}

body{
padding:20px;
}

.center{
min-height:100vh;
display:flex;
justify-content:center;
align-items:center;
}

.panel{
width:100%;
max-width:420px;
background:var(--card);
border:1px solid var(--line);
border-radius:34px;
padding:30px;
box-shadow:var(--shadow);
}

.title{
font-size:34px;
font-weight:800;
margin-bottom:20px;
letter-spacing:-1px;
}

input{
width:100%;
padding:16px;
border:none;
outline:none;
border-radius:18px;
background:var(--bg);
color:var(--text);
font-size:15px;
margin-bottom:12px;
border:1px solid var(--line);
}

input::placeholder{
color:var(--sub);
}

.row{
display:flex;
gap:10px;
}

button{
border:none;
cursor:pointer;
border-radius:999px;
padding:14px 18px;
background:var(--text);
color:var(--bg);
font-weight:700;
font-size:14px;
transition:.2s;
}

button:hover{
opacity:.9;
transform:translateY(-1px);
}

#app{
display:none;
}

.top{
margin-bottom:20px;
}

.upload{
background:var(--card);
border:2px dashed var(--line);
border-radius:32px;
padding:50px 20px;
text-align:center;
transition:.2s;
box-shadow:var(--shadow);
}

.upload.drag{
background:var(--hover);
transform:scale(1.01);
}

.upload svg{
width:52px;
height:52px;
margin-bottom:14px;
opacity:.8;
}

.upload-text{
font-size:16px;
font-weight:700;
margin-bottom:14px;
}

.gallery{
display:grid;
grid-template-columns:repeat(auto-fill,minmax(220px,1fr));
gap:18px;
}

.card{
background:var(--card);
border-radius:28px;
overflow:hidden;
border:1px solid var(--line);
box-shadow:var(--shadow);
transition:.2s;
}

.card:hover{
transform:translateY(-3px);
}

.preview{
height:180px;
background:var(--bg);
display:flex;
justify-content:center;
align-items:center;
overflow:hidden;
}

.preview img{
width:100%;
height:100%;
object-fit:cover;
}

.file-icon{
width:52px;
height:52px;
opacity:.7;
}

.name{
padding:16px 16px 8px;
font-size:13px;
line-height:1.5;
word-break:break-all;
color:var(--text);
}

.buttons{
display:flex;
gap:10px;
padding:0 16px 16px;
}

.buttons button{
flex:1;
padding:11px;
font-size:13px;
}

.toast{
position:fixed;
left:50%;
bottom:20px;
transform:translateX(-50%) translateY(20px);
background:var(--text);
color:var(--bg);
padding:12px 18px;
border-radius:999px;
opacity:0;
transition:.25s;
font-size:14px;
font-weight:700;
pointer-events:none;
}

.toast.show{
opacity:1;
transform:translateX(-50%) translateY(0);
}