:root{--primary:#1f4e79;--primary-hover:#183f62;--bg:#f4f4f5;--surface:#fff;--subtle:#f8f9fa;--border:#e4e4e7;--text:#18181b;--muted:#6b7280;--danger:#b91c1c;--danger-bg:#fef2f2;--success:#15803d;--success-bg:#dcfce7;--radius:12px;--radius-sm:6px;color:var(--text);background:var(--bg);font-family:Pretendard,Malgun Gothic,system-ui,sans-serif;font-size:14px}*{box-sizing:border-box}body,h1,h2,p,ul{margin:0}ul{padding:0;list-style:none}button,input{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}h1:focus{outline:0}#root{grid-template-columns:minmax(0,1fr);place-items:center;min-height:100vh;padding:40px 16px;display:grid}.card,.card section,.card ul{grid-template-columns:minmax(0,1fr)}.card{border-radius:var(--radius);background:var(--surface);gap:24px;width:100%;max-width:624px;padding:48px;display:grid;box-shadow:0 4px 24px #0000000f}.card.gate{max-width:520px}.brand{text-align:center;justify-items:center;gap:6px;display:grid}.brand-name{color:var(--primary);align-items:center;gap:6px;font-weight:700;display:flex}h1{font-size:24px;font-weight:700}.muted{color:var(--muted);font-size:13px}.field{gap:8px;display:grid}.field-label{font-size:13px;font-weight:700}.input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);height:40px;padding:0 12px}.input[aria-invalid=true]{border-color:var(--danger)}.alert{border-radius:var(--radius-sm);background:var(--danger-bg);color:var(--danger);align-items:center;gap:8px;padding:12px 16px;font-size:13px;display:flex}.alert svg{flex:none}.btn{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;justify-content:center;align-items:center;gap:6px;height:40px;padding:0 16px;font-weight:700;display:inline-flex}.btn:hover:not(:disabled){background:var(--subtle)}.btn:disabled{opacity:.6;cursor:default}.btn-primary{border-color:var(--primary);background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-hover)}.btn-block{width:100%;height:48px}.btn-sm{height:32px;padding:0 14px;font-size:13px}.gate form{gap:16px;display:grid}.hint{color:var(--muted);text-align:center;font-size:12px;line-height:1.6}.dropzone{border:1.5px dashed var(--primary);border-radius:var(--radius-sm);background:var(--subtle);color:var(--primary);text-align:center;cursor:pointer;justify-items:center;gap:12px;padding:40px 24px;display:grid}.dropzone p{color:var(--text);font-weight:600}.dropzone.dragging{background:#e8f0f8}.picked,.result-group{gap:10px;display:grid}.picked h2,.result-group h2{font-size:14px;font-weight:700}.picked ul,.result-group ul{gap:8px;display:grid}.picked li{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--subtle);color:var(--muted);align-items:center;gap:10px;padding:12px 16px;display:flex}.file-name{min-width:0;color:var(--text);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.file-size{flex:none;font-size:12px}.icon-btn{border-radius:var(--radius-sm);width:28px;height:28px;color:var(--muted);cursor:pointer;background:0 0;border:0;flex:none;place-items:center;margin-left:auto;display:grid}.icon-btn:hover{background:var(--border)}.result-head{text-align:center;justify-items:center;gap:10px;display:grid}.result-icon{background:var(--success-bg);width:48px;height:48px;color:var(--success);border-radius:50%;place-items:center;display:grid}.result-icon.failed{background:var(--danger-bg);color:var(--danger)}.result-group h2.ok{color:var(--success)}.result-group h2.failed{color:var(--danger)}.result-item{border-radius:var(--radius-sm);word-break:break-all;border:1px solid;align-items:center;gap:10px;padding:12px 16px;display:flex}.result-item.ok{background:var(--success-bg);color:#166534;border-color:#86efac}.result-item.failed{background:var(--danger-bg);color:var(--danger);border-color:#fca5a5;grid-template-columns:auto 1fr;gap:4px 10px;display:grid}.result-item.failed small{grid-column:2;font-size:12px}@media (width<=560px){.card{padding:32px 20px}}
